home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor2 / rosetta.doc < prev    next >
Text File  |  1995-03-31  |  21KB  |  577 lines

  1. (Comp.sys.hp48) 
  2. Item: 84 by bson@rice-chex.ai.mit.edu [Jan Brittenson] 
  3.         and joehorn@hpcvbbs.cv.hp.com [Joseph K. Horn] 
  4.   Subj: Rosetta Stone (STAR version) 
  5.   Date: Sun Oct 27 1991 
  6.  
  7.     Éííííííííííííííííííííííííí» 
  8.     º                         º 
  9.     º    The Rosetta Stone    º 
  10.     º                         º 
  11.     º   HP <-> AG Mnemonics   º 
  12.     º                         º 
  13.     èííííííííííííííííííííííííí¼ 
  14.  
  15. There are two different sets of mnemonics in use for the HP48's 
  16. assembly language; the set used by HP to develop their calculators' 
  17. operating systems and support software, and the set invented by Alonzo 
  18. Gariepy in an attempt to make assembly language more understandable. 
  19. People keep clamoring for a HP-to-AG dictionary.  Here it is. 
  20.  
  21.    Compiled by Joseph K. Horn, from the HP-mnemonics list by Derek S. 
  22. Nickel, dated 30 January 1991 and the AG disassembly program "DISD" by 
  23. Kevin Pryor.  (Both can be found on EduCALC Goodies Disk #2). 
  24.  
  25.    Modified by Jan Brittenson October 1991, to match STAR syntax, to 
  26. fill in unknowns, and to prepare it for inclusion as an appendix in 
  27. the MLDL manual. 
  28.  
  29. [Included on this Goodies Disk to accompany the MLDL1.06 
  30.  documentation.  -jkh-] 
  31.  
  32.               Syntax: 
  33.  
  34.        úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 
  35.        3 HEX   HP   |   AG 3 
  36.        àÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄù 
  37.  
  38. Please post all errors and omissions discovered.  Thank you. 
  39. [Note: None posted as of 20 October 1991. -jkh-] 
  40.  
  41. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  42.         OVERVIEW 
  43. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  44.  
  45. 0...  misc operations (see next page) 
  46.  
  47. 1...  data movement/loading (see following page) 
  48.  
  49. 2n   P= n   |   MOVE.1 n,P 
  50.  
  51. 3xn..n   LC(x)  n..n     |   MOVE.Px n..n,C 
  52. 3mc..c   LCASC  \A..A\   |   MOVE.Pn `A..A',C 
  53. 3nh..h   LCHEX  h..h     |   MOVE.Pn h..h,C 
  54.  
  55. 400   RTNCS       |   RETCS 
  56. 4aa   GOC label   |   BRCS label 
  57. 420   NOP3        |   NOP3 
  58.  
  59. 500   RTNNC        |   RETCC 
  60. 5aa   GONC label   |   BRCC label 
  61.  
  62. 6aaa   GOTO label   |   JUMP label 
  63. 6300   NOP4         |   NOP4 
  64. 64000   NOP5        |   NOP5 
  65.  
  66. 7aaa   GOSUB label   |   CALL label 
  67.  
  68. A...F   (see pages at end) 
  69.  
  70. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  71.         0 
  72. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  73.  
  74. 00   RTNSXM   |   RETSETXM 
  75. 01   RTN      |   RET 
  76. 02   RTNSC    |   RETSETC 
  77. 03   RTNCC    |   RETCLRC 
  78. 04   SETHEX   |   SETHEX 
  79. 05   SETDEC   |   SETDEC 
  80. 06   RSTK=C   |   PUSH.A C 
  81. 07   C=RSTK   |   POP.A C 
  82. 08   CLRST    |   CLR.X ST 
  83. 09   C=ST     |   MOVE.X ST,C 
  84. 0A   ST=C     |   MOVE.X C,ST 
  85. 0B   CSTEX    |   SWAP.X C,ST 
  86. 0C   P=P+1    |   INC.1 P 
  87. 0D   P=P-1    |   DEC.1 P 
  88. 0Exx   (see below) 
  89. 0F   RTI      |   RETI 
  90.  
  91. (see "fs" field select table below) 
  92.  
  93. 0Ea0   A=A&B  fs   |   AND.fs B,A 
  94. 0Ea1   B=B&C  fs   |   AND.fs C,B 
  95. 0Ea2   C=C&A  fs   |   AND.fs A,C 
  96. 0Ea3   D=D&C  fs   |   AND.fs C,D 
  97. 0Ea4   B=B&A  fs   |   AND.fs A,B 
  98. 0Ea5   C=C&B  fs   |   AND.fs B,C 
  99. 0Ea6   A=A&C  fs   |   AND.fs C,A 
  100. 0Ea7   C=C&D  fs   |   AND.fs D,C 
  101. 0Ea8   A=A!B  fs   |   OR.fs B,A 
  102. 0Ea9   B=B!C  fs   |   OR.fs C,B 
  103. 0EaA   C=C!A  fs   |   OR.fs A,C 
  104. 0EaB   D=D!C  fs   |   OR.fs C,D 
  105. 0EaC   B=B!A  fs   |   OR.fs A,B 
  106. 0EaD   C=C!B  fs   |   OR.fs B,C 
  107. 0EaE   A=A!C  fs   |   OR.fs C,A 
  108. 0EaF   C=C!D  fs   |   OR.fs D,C 
  109.  
  110. fs: P  WP XS X  S  M  B  W  A   <-- use this "fs" field 
  111. a:  0  1  2  3  4  5  6  7  F   <-- for this value of "a" above 
  112.  
  113. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  114.         10, 11, 12 
  115. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  116.  
  117. 100   R0=A   |   MOVE.W A,R0 
  118. 101   R1=A   |   MOVE.W A,R1 
  119. 102   R2=A   |   MOVE.W A,R2 
  120. 103   R3=A   |   MOVE.W A,R3 
  121. 104   R4=A   |   MOVE.W A,R4 
  122. 108   R0=C   |   MOVE.W C,R0 
  123. 109   R1=C   |   MOVE.W C,R1 
  124. 10A   R2=C   |   MOVE.W C,R2 
  125. 10B   R3=C   |   MOVE.W C,R3 
  126. 10C   R4=C   |   MOVE.W C,R4 
  127.  
  128. 110   A=R0   |   MOVE.W R0,A 
  129. 111   A=R1   |   MOVE.W R1,A 
  130. 112   A=R2   |   MOVE.W R2,A 
  131. 113   A=R3   |   MOVE.W R3,A 
  132. 114   A=R4   |   MOVE.W R4,A 
  133.  
  134. 118   C=R0   |   MOVE.W R0,C 
  135. 119   C=R1   |   MOVE.W R1,C 
  136. 11A   C=R2   |   MOVE.W R2,C 
  137. 11B   C=R3   |   MOVE.W R3,C 
  138. 11C   C=R4   |   MOVE.W R4,C 
  139.  
  140. 120   AR0EX   |   SWAP.W A,R0 
  141. 121   AR1EX   |   SWAP.W A,R1 
  142. 122   AR2EX   |   SWAP.W A,R2 
  143. 123   AR3EX   |   SWAP.W A,R3 
  144. 124   AR4EX   |   SWAP.W A,R4 
  145.  
  146. 128   CR0EX   |   SWAP.W C,R0 
  147. 129   CR1EX   |   SWAP.W C,R1 
  148. 12A   CR2EX   |   SWAP.W C,R2 
  149. 12B   CR3EX   |   SWAP.W C,R3 
  150. 12C   CR4EX   |   SWAP.W C,R4 
  151.  
  152. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  153.         13 through 1F 
  154. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  155.  
  156. 130   D0=A    |   MOVE.A A,D0 
  157. 131   D1=A    |   MOVE.A A,D1 
  158. 132   AD0EX   |   SWAP.A A,D0 
  159. 133   AD1EX   |   SWAP.A A,D1 
  160. 134   D0=C    |   MOVE.A C,D0 
  161. 135   D1=C    |   MOVE.A C,D1 
  162. 136   CD0EX   |   SWAP.A C,D0 
  163. 137   CD1EX   |   SWAP.A C,D1 
  164.  
  165. 138   D0=AS   |   MOVE.4 A,D0 
  166. 139   D1=AS   |   MOVE.4 A,D1 
  167. 13A   AD0XS   |   SWAP.4 A,D0 
  168. 13B   AD1XS   |   SWAP.4 A,D1 
  169.  
  170. 13C   D0=CS   |   MOVE.4 C,D0 
  171. 13D   D1=CS   |   MOVE.4 C,D1 
  172. 13E   CD0XS   |   SWAP.4 C,D0 
  173. 13F   CD1XS   |   SWAP.4 C,D1 
  174. ÄÄÄÄÄÄÄÄÄÄ field ÄÄÄÄÄÄÄÄÄÄÄ 
  175.  A       B       fs      d 
  176. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 
  177. 140     148     150a    158x    DAT0=A fs   |   MOVE.fs A,@D0 
  178. 141     149     151a    159x    DAT1=A fs   |   MOVE.fs A,@D1 
  179. 142     14A     152a    15Ax    A=DAT0 fs   |   MOVE.fs @D0,A 
  180. 143     14B     153a    15Bx    A=DAT1 fs   |   MOVE.fs @D1,A 
  181. 144     14C     154a    15Cx    DAT0=C fs   |   MOVE.fs C,@D0 
  182. 145     14D     155a    15Dx    DAT1=C fs   |   MOVE.fs C,@D1 
  183. 146     14E     156a    15Ex    C=DAT0 fs   |   MOVE.fs @D0,C 
  184. 147     14F     157a    15Fx    C=DAT1 fs   |   MOVE.fs @D1,C 
  185.  
  186. 16x     D0=D0+ n       |   ADD.A n,D0 
  187. 17x     D1=D1+ n       |   ADD.A n,D1 
  188. 18x     D0=D0- n       |   SUB.A n,D0 
  189. 19nn    D0=(2) nn      |   MOVE.2 nn,D0      ** 
  190. 19hh    D0=HEX hh      |   MOVE.2 hh,D0      ** 
  191. 1Annnn  D0=(4) nnnn    |   MOVE.4 nnnn,D0    ** 
  192. 1Ahhhh  D0=HEX hhhh    |   MOVE.4 hhhh,D0    ** 
  193. 1Bnnnnn D0=(5) nnnnn   |   MOVE.5 nnnnn,D0   ** 
  194. 1Bhhhhh D0=HEX hhhhh   |   MOVE.5 hhhhh,D0   ** 
  195. 1Cx     D1=D1- n       |   SUB.A n,D1 
  196. 1Dnn    D1=(2) nn      |   MOVE.2 nn,D1      ** 
  197. 1Dhh    D1=HEX hh      |   MOVE.2 hh,D1      ** 
  198. 1Ennnn  D1=(4) nnnn    |   MOVE.4 nnnn,D1    ** 
  199. 1Ehhhh  D1=HEX hhhh    |   MOVE.4 hhhh,D1    ** 
  200. 1Fnnnnn D1=(5) nnnnn   |   MOVE.5 nnnnn,D1   ** 
  201. 1Fhhhhh D1=HEX hhhhh   |   MOVE.5 hhhhh,D1   ** 
  202.  
  203.           ** In the STAR assembler, the instruction suffix 
  204.           (2, 4, or 5 above) determines the operand size, the 
  205.           operand is any general expression. The instruction 
  206.           does not determine the integer base; rather, as in 
  207.           all expression, constants of any mix of bases may 
  208.           be used. The following two instructions are identical: 
  209.  
  210.                MOVE.2    0x40+5, D0     ; Hex plus decimal 
  211.                MOVE.2    64+0x5, D0     ; Decimal plus hex 
  212.  
  213.  
  214. fs: P  WP XS X  S  M  B  W 
  215. a:  0  1  2  3  4  5  6  7 
  216.  
  217. x = d - 1        x = n - 1 
  218. d = x + 1        n = x + 1 
  219.  
  220. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  221.         80 
  222. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  223.  
  224. 800   OUT=CS   |   OUT.S C 
  225. 801   OUT=C    |   OUT.X C 
  226. 802   A=IN     |   IN.4 A 
  227. 803   C=IN     |   IN.4 C 
  228. 804   UNCNFG   |   UNCNFG 
  229. 805   CONFIG   |   CONFIG 
  230. 806   C=ID     |   MOVE.A ID,C 
  231. 807   SHUTDN   |   SHUTDN 
  232.  
  233. 8080   INTON     |   INTON 
  234. 80810   RSI      |   RSI 
  235. 8082xn..n   LA(m)  n..n   |   MOVE.Pm n..n,A 
  236. 8082mc..c   LAASC  \A..A\   |   MOVE.Pn `A..A',A 
  237. 8082nh..h   LAHEX  h..h   |   MOVE.Pd h..h,A 
  238.  
  239. 8083    BUSCB       |   BUSCB 
  240. 8084n   ABIT=0 d    |   CLRB d,A 
  241. 8085n   ABIT=1 d    |   SETB d,A 
  242. 8086nyy ?ABIT=0 d   |   BRBC d,A,label / RETBC d,A 
  243. 8087nyy ?ABIT=1 d   |   BRBS d,A,label / RETBS d,A 
  244. 8088n   CBIT=0 d    |   CLRB d,C 
  245. 8089n   CBIT=1 d    |   SETB d,C 
  246. 808Anyy ?CBIT=0 d   |   BRBC d,C,label / RETBC d,C 
  247. 808Bnyy ?CBIT=1 d   |   BRBS d,C,label / RETBS d,C 
  248. 808C    PC=(A)   |   JUMP.A @A 
  249. 808D    BUSCD    |   BUSCD 
  250. 808E    PC=(C)   |   JUMP.A @C 
  251. 808F    INTOFF   |   INTOFF 
  252.  
  253. 809     C+P+1    |   ADD.A P+1,C 
  254. 80A     RESET    |   RESET 
  255. 80B     BUSCC    |   BUSCC 
  256. 80Cn    C=P n    |   MOVE.1 P,C.n 
  257. 80Dn    P=C n    |   MOVE.1 C.n,P 
  258. 80E     SREQ?    |   SREQ 
  259. 80Fn    CPEX n   |   SWAP.1 P,C.n 
  260.  
  261. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  262.         81 
  263. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  264.  
  265. 810  ASLC   |   RLN.W A 
  266. 811  BSLC   |   RLN.W B 
  267. 812  CSLC   |   RLN.W C 
  268. 813  DSLC   |   RLN.W D 
  269. 814  ASRC   |   RRN.W A 
  270. 815  BSRC   |   RRN.W B 
  271. 816  CSRC   |   RRN.W C 
  272. 817  DSRC   |   RRN.W D 
  273.  
  274. 81C  ASRB   |   SRB.W A 
  275. 81D  BSRB   |   SRB.W B 
  276. 81E  CSRB   |   SRB.W C 
  277. 81F  DSRB   |   SRB.W D 
  278.  
  279. 818a0x      A=A+n fs   |   ADD.fs n,A 
  280. 818a1x      B=B+n fs   |   ADD.fs n,B 
  281. 818a2x      C=C+n fs   |   ADD.fs n,C 
  282. 818a3x      D=D+n fs   |   ADD.fs n,D 
  283.  
  284. 818b0x      A=A-n fs   |   SUB.fs n,A 
  285. 818b1x      B=B-n fs   |   SUB.fs n,B 
  286. 818b2x      C=C-n fs   |   SUB.fs n,C 
  287. 818b3x      D=D-n fs   |   SUB.fs n,D 
  288.  
  289. fs: P  WP XS X  S  M  B  W 
  290. a:  0  1  2  3  4  5  6  7 
  291. b:  8  9  A  B  C  D  E  F 
  292.  
  293. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  294.         82 through 8F, 9 
  295. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  296.  
  297. 82n   HS=0 n |   CLRB [],HST        {MP,SR,SB,XM}  (see ** below) 
  298. 821   XM=0   |   CLRB [XM],HST   { 0  0  0  1   ->  1} 
  299. 822   SB=0   |   CLRB [SB],HST   { 0  0  1  0   ->  2} 
  300. 824   SR=0   |   CLRB [SR],HST   { 0  1  0  0   ->  4} 
  301. 828   MP=0   |   CLRB [MP],HST   { 1  0  0  0   ->  8} 
  302. 82F   CLRHST |   CLRB [XM,SB,SR,MP],HST 
  303.              **  e.g.  829  is  HS=0 9   |   CLRB [XM,MP],HST 
  304.  
  305.    Note: in the STAR assembler, the notation [A,B,C...] means "an 
  306. integer with bits A,B,C... set". [] is zero. The symbols "MP", "SR", 
  307. "SB", and "XM" are predefined by the assembler to the values 0, 1, 2, 
  308. and 3 respectively. Thus, "[3,1]" is equivalent to "[XM,MP]". All 
  309. [...] constructions are collectively refered to as a "bit pattern 
  310. expressions." 
  311.  
  312.  
  313. 831yy   ?XM=0   |   BRBC [XM],HST,label / RETBC [XM],HST    ** 
  314. 832yy   ?SB=0   |   BRBC [SB],HST,label / RETBC [SB],HST    ** 
  315. 834yy   ?SR=0   |   BRBC [SR],HST,label / RETBC [SR],HST    ** 
  316. 838yy   ?MP=0   |   BRBC [MP],HST,label / RETBC [MP],HST    ** 
  317.  
  318.           ** See explanation of bit pattern expressions above. 
  319.  
  320.  
  321. 84n     ST=0   n   |   CLRB n,ST 
  322. 85n     ST=1   n   |   SETB n,ST 
  323. 86nyy   ?ST=0  n   |   BRBC n,ST,label / RETBC n,ST 
  324. 87nyy   ?ST=1  n   |   BRBS n,ST,label / RETBS n,ST 
  325. 88nyy   ?P#    n   |   BRNE.1 P,n,label / RETNE.1 P,n 
  326. 89nyy   ?P=    n   |   BREQ.1 P,n,label / RETEQ.1 P,n 
  327.  
  328. 8A...8b... (see below) 
  329.  
  330. 8Caaaa  GOLONG label   |   JUMP.4 label 
  331. 8Daaaaa GOVLNG label   !   JUMP.A label 
  332. 8Eaaaa  GOSUBL label   !   CALL.4 label 
  333. 8Faaaaa GOSBVL label   !   CALL.A label 
  334.  
  335. 9zxyy  (see below) 
  336.  
  337. test00  RTNYES        !   (not needed; see test mnemonics) 
  338. testyy  GOYES  label  !   (not needed; see test mnemonics) 
  339.  
  340. Relative gotos (GOTO, GOLONG, GOC, GONC, GOYES): 
  341. Offset is relative to the first nibble of the offset. 
  342.  
  343. Relative gosubs (GOSUB, GOSUBL): 
  344. Offset is relative to the first nibble of the next instruction. 
  345.  
  346. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  347.         8A, 8B, 9 
  348. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  349.  
  350. ÄÄÄ field ÄÄÄÄ 
  351.   A      fs 
  352. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 
  353. 8A0yy   9a0yy    ?A=B field   |   BREQ.field A,B,PC+(yy+3) ** 
  354. 8A1yy   9a1yy    ?B=C field   |   BREQ.field B,C,PC+(yy+3) 
  355. 8A2yy   9a2yy    ?A=C field   |   BREQ.field A,C,PC+(yy+3) 
  356. 8A3yy   9a3yy    ?C=D field   |   BREQ.field C,D,PC+(yy+3) 
  357. 8A4yy   9a4yy    ?A#B field   |   BRNE.field A,B,PC+(yy+3) 
  358. 8A5yy   9a5yy    ?B#C field   |   BRNE.field B,C,PC+(yy+3) 
  359. 8A6yy   9a6yy    ?A#C field   |   BRNE.field A,C,PC+(yy+3) 
  360. 8A7yy   9a7yy    ?C#D field   |   BRNE.field C,D,PC+(yy+3) 
  361. 8A8yy   9a8yy    ?A=0 field   |   BRZ.field A,PC+(yy+3) 
  362. 8A9yy   9a9yy    ?B=0 field   |   BRZ.field B,PC+(yy+3) 
  363. 8AAyy   9aAyy    ?C=0 field   |   BRZ.field C,PC+(yy+3) 
  364. 8AByy   9aByy    ?D=0 field   |   BRZ.field D,PC+(yy+3) 
  365. 8ACyy   9aCyy    ?A#0 field   |   BRNZ.field A,PC+(yy+3) 
  366. 8ADyy   9aDyy    ?B#0 field   |   BRNZ.field B,PC+(yy+3) 
  367. 8AEyy   9aEyy    ?C#0 field   |   BRNZ.field C,PC+(yy+3) 
  368. 8AFyy   9aFyy    ?D#0 field   |   BRNZ.field D,PC+(yy+3) 
  369.  
  370. 8B0yy   9b0yy    ?A>B  field   |   BRGT.field A,B,PC+(yy+3) ** 
  371. 8B1yy   9b1yy    ?B>C  field   |   BRGT.field B,C,PC+(yy+3) 
  372. 8B2yy   9b2yy    ?C>A  field   |   BRGT.field C,A,PC+(yy+3) 
  373. 8B3yy   9b3yy    ?D>C  field   |   BRGT.field D,C,PC+(yy+3) 
  374. 8B4yy   9b4yy    ?A<B  field   |   BRLT.field A,B,PC+(yy+3) 
  375. 8B5yy   9b5yy    ?B<C  field   |   BRLT.field B,C,PC+(yy+3) 
  376. 8B6yy   9b6yy    ?C<A  field   |   BRLT.field C,A,PC+(yy+3) 
  377. 8B7yy   9b7yy    ?D<C  field   |   BRLT.field D,C,PC+(yy+3) 
  378. 8B8yy   9b8yy    ?A>=B field   |   BRGE.field A,B,PC+(yy+3) 
  379. 8B9yy   9b9yy    ?B>=C field   |   BRGE.field B,C,PC+(yy+3) 
  380. 8BAyy   9bAyy    ?C>=A field   |   BRGE.field C,A,PC+(yy+3) 
  381. 8BByy   9bByy    ?D>=C field   |   BRGE.field D,C,PC+(yy+3) 
  382. 8BCyy   9bCyy    ?A<=B field   |   BRLE.field A,B,PC+(yy+3) 
  383. 8BDyy   9bDyy    ?B<=C field   |   BRLE.field B,C,PC+(yy+3) 
  384. 8BEyy   9bEyy    ?C<=A field   |   BRLE.field C,A,PC+(yy+3) 
  385. 8BFyy   9bFyy    ?D<=C field   |   BRLE.field D,C,PC+(yy+3) 
  386.  
  387. **  RET instead of BR for all of the above, if yy=0. 
  388.  
  389. fs: P  WP XS X  S  M  B  W 
  390. a:  0  1  2  3  4  5  6  7 
  391. b:  8  9  A  B  C  D  E  F 
  392.  
  393. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  394.         A, C, D 
  395. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  396.  
  397. ÄÄ field ÄÄ 
  398. A     fs 
  399. ÄÄÄÄÄÄÄÄÄÄÄ 
  400. C0    Aa0    A=A+B  field   |   ADD.field B,A 
  401. C1    Aa1    B=B+C  field   |   ADD.field C,B 
  402. C2    Aa2    C=C+A  field   |   ADD.field A,C 
  403. C3    Aa3    D=D+C  field   |   ADD.field C,D 
  404. C4    Aa4    A=A+A  field   |   ADD.field A,A 
  405. C5    Aa5    B=B+B  field   |   ADD.field B,B 
  406. C6    Aa6    C=C+C  field   |   ADD.field C,C 
  407. C7    Aa7    D=D+D  field   |   ADD.field D,D 
  408. C8    Aa8    B=B+A  field   |   ADD.field A,B 
  409. C9    Aa9    C=C+B  field   |   ADD.field B,C 
  410. CA    AaA    A=A+C  field   |   ADD.field C,A 
  411. CB    AaB    C=C+D  field   |   ADD.field D,C 
  412. CC    AaC    A=A-1  field   |   DEC.field A 
  413. CD    AaD    B=B-1  field   |   DEC.field B 
  414. CE    AaE    C=C-1  field   |   DEC.field C 
  415. CF    AaF    D=D-1  field   |   DEC.field D 
  416.  
  417. D0    Ab0    A=0  field   |   CLR.field A 
  418. D1    Ab1    B=0  field   |   CLR.field B 
  419. D2    Ab2    C=0  field   |   CLR.field C 
  420. D3    Ab3    D=0  field   |   CLR.field D 
  421. D4    Ab4    A=B  field   |   MOVE.field B,A 
  422. D5    Ab5    B=C  field   |   MOVE.field C,B 
  423. D6    Ab6    C=A  field   |   MOVE.field A,C 
  424. D7    Ab7    D=C  field   |   MOVE.field C,D 
  425. D8    Ab8    B=A  field   |   MOVE.field A,B 
  426. D9    Ab9    C=B  field   |   MOVE.field B,C 
  427. DA    AbA    A=C  field   |   MOVE.field C,A 
  428. DB    AbB    C=D  field   |   MOVE.field D,C 
  429. DC    AbC    ABEX field   |   SWAP.field A,B 
  430. DD    AbD    BCEX field   |   SWAP.field B,C 
  431. DE    AbE    ACEX field   |   SWAP.field A,C 
  432. DF    AbF    CDEX field   |   SWAP.field C,D 
  433.  
  434. fs: P  WP XS X  S  M  B  W 
  435. a:  0  1  2  3  4  5  6  7 
  436. b:  8  9  A  B  C  D  E  F 
  437.  
  438. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  439.         B, E, F 
  440. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  441.  
  442. ÄÄ field ÄÄÄ 
  443. A     fs 
  444. ÄÄÄÄÄÄÄÄÄÄÄÄ 
  445. E0    Ba0   A=A-B  field   |   SUB.field B,A 
  446. E1    Ba1   B=B-C  field   |   SUB.field C,B 
  447. E2    Ba2   C=C-A  field   |   SUB.field A,C 
  448. E3    Ba3   D=D-C  field   |   SUB.field C,D 
  449. E4    Ba4   A=A+1  field   |   INC.field A 
  450. E5    Ba5   B=B+1  field   |   INC.field B 
  451. E6    Ba6   C=C+1  field   |   INC.field C 
  452. E7    Ba7   D=D+1  field   |   INC.field D 
  453. E8    Ba8   B=B-A  field   |   SUB.field A,B 
  454. E9    Ba9   C=C-B  field   |   SUB.field B,C 
  455. EA    BaA   A=A-C  field   |   SUB.field C,A 
  456. EB    BaB   C=C-D  field   |   SUB.field D,C 
  457. EC    BaC   A=B-A  field   |   SUBN.field B,A 
  458. ED    BaD   B=C-B  field   |   SUBN.field C,B 
  459. EE    BaE   C=A-C  field   |   SUBN.field A,C 
  460. EF    BaF   D=C-D  field   |   SUBN.field C,D 
  461.  
  462. F0    Bb0   ASL    field   |   SLN.field A 
  463. F1    Bb1   BSL    field   |   SLN.field B 
  464. F2    Bb2   CSL    field   |   SLN.field C 
  465. F3    Bb3   DSL    field   |   SLN.field D 
  466. F4    Bb4   ASR    field   |   SRN.field A 
  467. F5    Bb5   BSR    field   |   SRN.field B 
  468. F6    Bb6   CSR    field   |   SRN.field C 
  469. F7    Bb7   DSR    field   |   SRN.field D 
  470. F8    Bb8   A=-A   field   |   NEG.field A 
  471. F9    Bb9   B=-B   field   |   NEG.field B 
  472. FA    BbA   C=-C   field   |   NEG.field C 
  473. FB    BbB   D=-D   field   |   NEG.field D 
  474. FC    BbC   A=-A-1 field   |   NOT.field A 
  475. FD    BbD   B=-B-1 field   |   NOT.field B 
  476. FE    BbE   C=-C-1 field   |   NOT.field C 
  477. FF    BbF   D=-D-1 field   |   NOT.field D 
  478.  
  479. fs: P  WP XS X  S  M  B  W 
  480. a:  0  1  2  3  4  5  6  7 
  481. b:  8  9  A  B  C  D  E  F 
  482.  
  483. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  484.         Data Storage Allocation 
  485. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  486.  
  487. 00..0   BSS    expr      |   DATA0   expr    ** 
  488. nn..n   CON(m) expr      |   DATA.m  expr 
  489. nn..n   REL(m) expr      |   DATA.m  expr-. 
  490. zy..a   NIBASC 'chars'   |   ASCII   `chars' 
  491. zy..a   NIBASC \chars\   |   ASCII   `chars' 
  492. hh..h   NIBHEX h..hh     |   DATA.m  h..hh 
  493.  
  494.           ** Requires inclusion of the following STAR macro 
  495.              definition: 
  496.  
  497.                macro     bss  arg=0 
  498.                  save op 
  499.                  arg=$arg 
  500.                  op = `;' 
  501.  
  502.                  if arg > 0 
  503.                    if arg < 8 
  504.                      data.$arg 0 
  505.                    else 
  506.                      op = `bss' 
  507.                    endif 
  508.                  endif 
  509.  
  510.                  $op $(arg-^d8) 
  511.                  restore op 
  512.                endmacro 
  513.  
  514.  
  515.  
  516. íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí 
  517.         New Instructions 
  518. 818f0m   A=A+CON rfs,d   |   ADD.rfs d,A 
  519. 818f1m   B=B+CON rfs,d   |   ADD.rfs d,B 
  520. 818f2m   C=C+CON rfs,d   |   ADD.rfs d,C 
  521. 818f3m   D=D+CON rfs,d   |   ADD.rfs d,D 
  522.  
  523. 818f8m   A=A-CON rfs,d   |   SUB.rfs d,A 
  524. 818f9m   B=B-CON rfs,d   |   SUB.rfs d,B 
  525. 818fAm   C=C-CON rfs,d   |   SUB.rfs d,C 
  526. 818fBm   D=D-CON rfs,d   |   SUB.rfs d,D 
  527.  
  528. 819f0   ASRB.F  fs   |   SRB.fs A 
  529. 819f1   BSRB.F  fs   |   SRB.fs B 
  530. 819f2   CSRB.F  fs   |   SRB.fs C 
  531. 819f3   DSRB.F  fs   |   SRB.fs D 
  532.  
  533. 81Af00   R0=A.F  fs   |   MOVE.fs A,R0 
  534. 81Af01   R1=A.F  fs   |   MOVE.fs A,R1 
  535. 81Af02   R2=A.F  fs   |   MOVE.fs A,R2 
  536. 81Af03   R3=A.F  fs   |   MOVE.fs A,R3 
  537. 81Af04   R4=A.F  fs   |   MOVE.fs A,R4 
  538.  
  539. 81Af08   R0=C.F  fs   |   MOVE.fs C,R0 
  540. 81Af09   R1=C.F  fs   |   MOVE.fs C,R1 
  541. 81Af0A   R2=C.F  fs   |   MOVE.fs C,R2 
  542. 81Af0B   R3=C.F  fs   |   MOVE.fs C,R3 
  543. 81Af0C   R4=C.F  fs   |   MOVE.fs C,R4 
  544.  
  545. 81Af10   A=R0.F  fs   |   MOVE.fs R0,A 
  546. 81Af11   A=R1.F  fs   |   MOVE.fs R1,A 
  547. 81Af12   A=R2.F  fs   |   MOVE.fs R2,A 
  548. 81Af13   A=R3.F  fs   |   MOVE.fs R3,A 
  549. 81Af14   A=R4.F  fs   |   MOVE.fs R4,A 
  550.  
  551. 81Af18   C=R0.F  fs   |   MOVE.fs R0,C 
  552. 81Af19   C=R1.F  fs   |   MOVE.fs R1,C 
  553. 81Af1A   C=R2.F  fs   |   MOVE.fs R2,C 
  554. 81Af1B   C=R3.F  fs   |   MOVE.fs R3,C 
  555. 81Af1C   C=R4.F  fs   |   MOVE.fs R4,C 
  556.  
  557. 81Af20   AR0EX.F fs   |   SWAP.fs A,R0 
  558. 81Af21   AR1EX.F fs   |   SWAP.fs A,R1 
  559. 81Af22   AR2EX.F fs   |   SWAP.fs A,R2 
  560. 81Af23   AR3EX.F fs   |   SWAP.fs A,R3 
  561. 81Af24   AR4EX.F fs   |   SWAP.fs A,R4 
  562.  
  563. 81Af28   CR0EX.F fs   |   SWAP.fs C,R0 
  564. 81Af29   CR1EX.F fs   |   SWAP.fs C,R1 
  565. 81Af2A   CR2EX.F fs   |   SWAP.fs C,R2 
  566. 81Af2B   CR3EX.F fs   |   SWAP.fs C,R3 
  567. 81Af2C   CR4EX.F fs   |   SWAP.fs C,R4 
  568.  
  569. 81B2   PC=A    |   JUMP.A A 
  570. 81B3   PC=C    |   JUMP.A C 
  571. 81B4   A=PC    |   MOVE.A PC,A 
  572. 81B5   C=PC    |   MOVE.A PC,C 
  573. 81B6   APCEX   |   SWAP.A A,PC 
  574. 81B7   CPCEX   |   SWAP.A C,PC 
  575.  
  576. --- End of Rosetta Stone --- 
  577.